# Contributor: August Klein <amatcoder@gmail.com>
# Maintainer: André Klitzing <aklitzing@gmail.com>
pkgname=cppcheck
pkgver=2.1
pkgrel=0
pkgdesc="Static analysis tool for C/C++ code"
url="http://cppcheck.sourceforge.net"
arch="all !s390x !aarch64 !mips !mips64" # limited by z3
license="GPL-3.0-or-later"
makedepends="docbook-xsl pcre-dev python3 qt5-qttools-dev z3-dev"
subpackages="$pkgname-doc $pkgname-htmlreport::noarch $pkgname-gui"
source="$pkgname-$pkgver.tar.gz::https://github.com/danmar/cppcheck/archive/$pkgver.tar.gz
	set_datadir.patch
	disable-findFunction19-test.patch
	python3-htmlreport.patch
	"

build() {
	# HACK get python to mean what we want
	ln -s /usr/bin/python3 python
	export PATH="$(pwd):$PATH"

	make DB2MAN=/usr/share/xml/docbook/xsl-stylesheets-*/manpages/docbook.xsl man

	cd gui
	lrelease-qt5 gui.pro
	qmake-qt5 HAVE_RULES=yes
	make SRCDIR=build CFGDIR=/usr/share/cppcheck/cfg HAVE_RULES=yes FILESDIR=/usr/share/cppcheck
}

check() {
	make SRCDIR=build check
}

package() {
	make DESTDIR="$pkgdir" CFGDIR=/usr/share/cppcheck/cfg HAVE_RULES=yes FILESDIR=/usr/share/cppcheck install
	install -Dm644 cppcheck.1 "$pkgdir"/usr/share/man/man1/cppcheck.1
}

htmlreport() {
	pkgdesc="Utility to generate a html report of a XML file produced by cppcheck"
	depends="$pkgname python3 py3-pygments"

	cd "$builddir"
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/$subpkgname "$subpkgdir"/usr/bin/
}

gui() {
	pkgdesc="Qt gui for cppcheck"
	depends="$pkgname"

	cd "$builddir"
	mkdir -p "$subpkgdir"/usr/bin
	mv gui/$subpkgname "$subpkgdir"/usr/bin/

	mkdir -p "$subpkgdir"/usr/share/cppcheck/lang/
	mv gui/cppcheck*.qm "$subpkgdir"/usr/share/cppcheck/lang/
}

sha512sums="7e1ef473168f9af35db0979f85ddb4d66b91c09051e27bc28ea7453dbe94fbf799515701c737820e0a3bea77da0d8ef171313612f65e954718a80bbcb56d54ed  cppcheck-2.1.tar.gz
013e3d1bb49602ac0bf39335d5b4df001aa98e1ad9689207063460edc30a4cd7b67f5e880bd0bcae0c03e5724a8bdd0cb5c8cafcb89a815dab24b2ead2923f36  set_datadir.patch
dd118f930aa509ee3d8b39d920f5de38b425657cc8a44520bb13b8f744aa4f2fe2bcd61141dbe1730f3202b70aecd3ef2531a04b8ebccdc5475cbe1a4dda38ab  disable-findFunction19-test.patch
346c5b41af809dfbff00b7ce66f8abc0e038d6272cf08bbefc4bfc6eaf32940815faca376609165de85072761271521c2a7a56aa7c59e88f65f7d9514b35aaff  python3-htmlreport.patch"
